﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace ConsoleApp3
{
    class Program
    {
        static void Main(string[] args)
        {

            //一、编写一个控制台应用程序，接受用户输入的两个整数和一个操作符，以实现对两个整数的加、减、乘、除运算，并显示出计算结果。

            //1、创建Calculate积累，其中包含两个整型的protected成员，用以接收用户输入的两个整数。定义一个DisplayResult()虚方法，计算并输出结果。
            //2、定义四个类继承自Calculate类，分别重写DisplayResult()方法，实现两个整数的加、减、乘、除运算，并输出结果。
            //3、根据用户输入的操作符，实例化相应的类，完成运算并输出结果。
            //4、在主类中添加一个方法，形参为父类对象，根据传递实参的类型，调用方法，实现计算和显示结果。
            //    Console.WriteLine("请选择要计算的符合");
            //    Console.WriteLine("1.+  2.-  3.*  4./");
            //    int Key =Convert.ToInt32( Console.ReadLine());
            //    Calculate ca;
            //    switch (Key)
            //    {
            //        case 1:
            //            Console.WriteLine("请输入第一个数");
            //            int a = int.Parse(Console.ReadLine());
            //            Console.WriteLine("请输入第二个数");
            //            int b = int.Parse(Console.ReadLine());
            //            ca = new ADD(a, b);
            //            break;
            //        case 2:
            //            Console.WriteLine("请输入第一个数");
            //            int c = int.Parse(Console.ReadLine());
            //            Console.WriteLine("请输入第二个数");
            //            int d = int.Parse(Console.ReadLine());
            //            ca = new Reduce(c, d);
            //            break;
            //        case 3:
            //            Console.WriteLine("请输入第一个数");
            //            int e = int.Parse(Console.ReadLine());
            //            Console.WriteLine("请输入第二个数");
            //            int f = int.Parse(Console.ReadLine());
            //            ca = new Take(e, f);
            //            break;
            //        case 4:
            //            Console.WriteLine("请输入第一个数");
            //            int g = int.Parse(Console.ReadLine());
            //            Console.WriteLine("请输入第二个数");
            //            int h = int.Parse(Console.ReadLine());
            //            ca = new Didive(g, h);
            //            break;

            //        default:
            //            ca = new ADD(0, 0);
            //            break;
            //    }
            //    PublicClculate.PublicClculatetest(ca);
            Console.WriteLine("请选择要计算的图形面积1.圆面积、2.正方形面积");
            int Key =int.Parse (Console.ReadLine());
            Shape shape;
            switch (Key)
            {
                case 1:
                    Console.WriteLine("请输入圆的半径");
                    int a = int.Parse(Console.ReadLine());
                    shape = new Circle(a);
                    break;
                case 2:
                    Console.WriteLine("请输入正方形的长");
                    int b = int.Parse(Console.ReadLine());
                    shape = new Square(b);
                    break;
                default:
                    shape = new Square(0);
                    break;
            }
            Clculate.Clculatetest(shape);
        }
        // 二、创建一个Shape（形状）类，此类包含一个名为color的数据成员，用于存储颜色，这个类还包含一个名为GetArea()的虚方法
        //（这个方法是用来获取形状面积的）。基于这个Shape，创建两个子类：Circle（圆形类）和Square（正方形类），
        // Circle类中包含radius（半径）的数据成员，Square类中包含sideLen（边长）的数据成员，
        //这两个子类都去重写父类的GetArea()方法，各自去实现计算自己的面积。
        //在主类中添加一个方法，参数类型就是Shape，方法体中，用形参去调用GetArea()方法。
        //main方法中去测试这个方法。

    }
}
